Éste documento contiene algunos elementos interactivos para facilitar la navegación y la presentación de información. Es posible que algunos de éstos elementos no se muestren correctamente en pantallas de baja resolución o en dispositivos móviles.
Tampoco funcionará en navegadores que bloqueen Javascript en documentos locales (chrome, firefox y sus derivados funcionan sin problema).
Las ecuaciones se muestran mediante MathJax, de modo que para poder visualizarlas se necesita una conexión a internet.
A la izquierda (arriba del todo en pantallas pequeñas) aparece una tabla de contenidos que detalla las diferentes secciones del documento. Al hacer click en una sección, nos llevará hasta ella.
En caso de duda a la hora de interactúar con un elemento, consultar la sección de ayuda.
En nuestros días, existe una gran cantidad de información almacenada en formato digital. Con el fin de poder procesar éstos flujos de información es necesario recurrir a las técnicas de minería de datos. En éste documento presentamos un ejemplo de aplicación de dichas tecnologías a modo de prueba de concepto. Analizamos un total de 156.629 artículos científicos del campo de la psicología con el objeto de proporcionar algunos indicadores bibliométricos. También exploramos diferentes métricas para evaluar la similaridad entre artículos, y realizamos una clusterización temática de los mismos.
In this day and age, there is a vast amount of information stored in digital format. In order to extract value from these pools of data we need to use data mining technologies. On this document we present an application of this kind of technologies as a proof of concept. We analyzed a total of 156.629 scientific papers from the field of psychology to provide some bibliometric measurements. We also explored a variety of metrics to assess the similarity between articles, and performed a thematic clustering of said documents.
La era de la información está caracterizada por un rápido crecimiento en la cantidad de datos almacenados en formato eléctronico. Así comienza un artículo de Feldman y Dagan (1995) sobre la explotación de bases de datos de texto. Desde entonces la tendencia no solo no ha cambiado, sino que se ha acelerado en varios órdenes de magnitud. Conforme aumenta el poder de cómputo de los ordenadores, su capacidad de almacenamiento y la calidad de las conexiones de internet, la cantidad de información disponible crece de forma casi exponencial.
En paralelo, Derek de Solla Price (1976) propuso que la producción científica en un campo determinado también tiende a aumentar rápidamente, en tanto en cuanto que los éxitos pueden motivar más éxitos, mientras que los fracasos no tienen el mismo efecto de composición (presumiblemente debido a que no son difundidos).
Ésta cantidad de información genera algunos retos para los individuos y las organizaciones. Para poder explotar el potencial de las fuentes de datos que tenemos a nuestra disposición, es necesario recurrir a la ciencia de datos y campos relacionados tales como la minería de textos.
La ciencia de datos se puede entender como una disciplina centrada en el procesamiento eficiente de los datos, generalmente con el objeto de expresarlos en un formato que nos permita comprenderlos mejor (estadísticas, gráficos, etc.). En ésta definición destaca la palabra eficiente, ya que para procesar grandes cantidades de información es importante desarrollar tecnologías muy optimizadas desde el punto de vista computacional, de lo contrario, muchos problemas se vuelven casi imposibles de resolver cuando la cantidad de observaciones supera cierto umbral.
A su vez, la minería de textos es un conjunto de técnicas orientadas a transformar cuerpos de texto en representaciones aptas para ser procesadas por un ordenador. Una vez que se han obtenido éstas representaciones, se pueden utilizar para extraer información de grandes colecciones de documentos.
Conviene definir algunos de los conceptos más elementales del campo (Batorsky, 2020):
Token: unidad mínima con utilidad semántica para nuestro modelo. Puede variar en función de la técnica aplicada: palabras, partes de palabras, frases, etc…
Documento: unidad en la que se encuentran nuestros textos: artículos, tweets, libros, correos…
Term frequency (TF) o frecuencia del token: veces que aparece el token en un documento.
Document frequency (DF) o frecuencia del documento: recuento de documentos que contienen un token.
Vocabulario: conjunto de tokens a tener en cuenta en el análisis.
Tal y como detallamos anteriormente, la minería de textos consiste en transformar el texto en representaciones que pueda procesar un ordenador. Algunas de las representaciones más elementales son las matrices “document-term” y “term-term”.
A su vez, éstas matrices sirven de base para elaborar otras.
Para poder realizar clasificaciones de los artículos de forma automatizada, debemos definir alguna métrica que nos oriente a la hora de decidir si dos artículos son semejantes entre sí. En ésta sección se exploran algunas de éstas métricas.
\[J(A, B) = \frac{|A \cap B|}{|A \cup B|}\]
En el contexto del análisis de texto, trata a cada documento como un conjunto de tokens, y evalúa la proporción que tienen en común frente a la que no tienen en común (Sieg, 2018). Documentación técnica: neo4j, text2vec.
Se calcula para cada par de documentos, y se suele representar mediante una matriz con \(n\) filas y \(n\) columnas, dónde \(n\) es el número de documentos. Por tanto, genera una matriz de tamaño \(n ^ 2\), que en nuestro caso contendría 24.532.643.641 celdas. Vemos como resulta imprescindible contar con algoritmos eficientes para realizar los cálculos, pues con ésta cantidad de iteraciones una implementación poco optimizada podría tardar varios días.
En la diagonal de ésta matriz aparece la métrica de similaridad de cada documento consigo mismo, que siempre es igual a la unidad.
\[cos(\theta) = \frac{A \cdot B}{\|A\| \|B\|}\]
Se define como el cociente entre el producto escalar de los dos vectores y el producto de la versión normalizada de cada vector (Richmond, 2020), (Sieg, 2018), documentación de text2vec. Generalmente se toma la norma euclidiana (\(L ^ 2\)), aunque hay otras disponibles.
Aplicado al análisis de texto, los vectores representan el recuento de veces que aparece cada token en los dos documentos (lo que serían las filas de la DTM).
Al igual que para la métrica anterior, se calcula para cada par de documentos y se puede representar en una matriz de tamaño \(n ^ 2\), en la que la diagonal representaría la similaridad del documento consigo mismo.
Los métodos anteriores permiten establecer la similaridad que existe entre dos documentos. La siguiente métrica está más orientada a describir relaciones entre unos términos individuales que caracterizan a los documentos, comúnmente denominados “keywords”.
Forma parte de una metodología conocida como “co-word analysis” (Rip & Courtial, 1984). Busca normalizar las frecuencias con las que dos keywords aparecen juntas mediante la siguiente fórmula:
\[e_{AB} = \frac{C ^ 2_{AB}}{C_A C_B}\]
Dónde \(e_{AB}\) representaría el índice de equivalencia, \(C_{AB}\) representa la frecuencia con la que ambas keywords aparecen juntas y \(C_A\), \(C_B\) representan el número de documentos en los que aparecen las keywords A y B respectivamente.
Se calcula para cada par de keywords, y se puede representar en una matriz similar a las anteriores. El valor de la métrica oscila entre 0 y 1. Valdría 0 si las keywords no aparecen juntas nunca y 1 si aparecen juntas siempre.
Ésta métrica presenta el inconveniente de que tiende a ser alta cuando ambas palabras son poco frecuentes pero aparecen juntas casi siempre. Por ello, es conveniente pre-procesar el vocabulario y eliminar del mismo los tokens que no estén presentes en un número mínimo de documentos.
Hay que destacar que ésta métrica no proporciona una matriz de similaridad entre pares de documentos, sino una matriz que expresa el grado en que dos términos aparecen juntos.
Una vez que hemos obtenido la matriz con las métricas, podemos utilizarla como entrada para otro modelo que nos permita clasificar los artículos en grupos o clústeres, de tal forma que los elementos que pertenecen al mismo clúster sean semejantes entre sí o suelan aparecer juntos. A continuación discutimos algunas técnicas que se utilizan para éste fin.
En un principio, le introducimos el número de clústeres que queremos obtener y el algoritmo hace los clústeres al azar. Entonces, calcula los centros de gravedad de cada clúster y evalúa las distancias entre las observaciones del clúster y su centro de gravedad.
Cuando se encuentra el caso de que una observación está más cerca del centro de gravedad de otro clúster, pasará al otro grupo. Repite el proceso hasta que todas las observaciones están más cerca del centro de gravedad de su clúster (Rodríguez, 2018).
Un inconveniente de éste algoritmo es que debemos introducir el número de clústeres (\(k\)) a priori. Existen diferentes métodos para estimar \(k\), siendo el más frecuente el denominado “método del codo” (Thorndike, 1953).
Además, dado que los puntos de inicio se seleccionan al azar, podemos obtener clasificaciones diferentes al ejecutar el algoritmo varias veces. Para solucionar el problema, podemos ejecutar el algoritmo varias veces y comprobar que genera clasificaciones consistentes.
Por tanto, la solución a ambos problemas pasa por ejecutar el algoritmo varias veces, de modo que se han diseñado procedimientos para acelerar su ejecución en términos de tiempo de cómputo y de latencia con respecto a la base de datos. Por ejemplo, Mini Batch k-means utiliza una muestra de observaciones a la hora de ajustar los centros de gravedad en vez de considerar todos los datos (Sculley, 2010).
Más información: Documentación de sklearn, (Brownlee, 2020).
Éste método fue descrito por Frey y Dueck (2007). Si k-medias comienza tomando \(k\) puntos al azar y los establece como candidatos para representar los centros de gravedad de cada clúster, éste método cosidera en un primer momento a todos los puntos como posibles centros de clúster (ejemplares en la terminología de los autores).
A continuación, representa a los puntos de datos como una red, y comienza a propagar una serie de mensajes por la misma. Cada mensaje representa la afinidad que un punto de datos tiene para considerar a otro como su ejemplar. De éste modo, cada punto “elige” al centro de su clúster.
El principal inconveniente de éste algoritmo es que su complejidad es de orden \(O(N ^ 2 T)\) en términos del tiempo de ejecución y \(O(N ^ 2)\) en relación a la memoria, donde N es número de documentos y T el número de iteraciones hasta que se alcanza la convergencia. Por ello, sólo puede aplicarse en conjuntos de datos pequeños y medianos.
Más información: Documentación de sklearn, (Brownlee, 2020). Se puede consultar una descripción detallada del algoritmo, así como una implementación en python en la web de Ritchie Vink (2018).
Ésta algoritmo pertenece a una familia de algoritmos denominados algoritmos de clusterización jerárquica. Comienza considerando a todas las observaciones como clústeres independientes. A continuación, utiliza un criterio de unión para ir juntando los puntos.
Dicho criterio toma decisiones sobre cómo agrupar los datos tomando como base las distancias que existen entre ellos. A su vez, éstas distancias pueden ser expresadas mediante diferentes métricas: euclidiana, coseno, l1, l2, etc.
Cada criterio de unión ofrece un rendimiento mejor o peor en diferentes circunstancias. La siguiente imagen resume los efectos del criterio en diferentes condiciones de clusterización:
Vemos que en la primera y la segunda situación las clasificaciones más razonables las conseguimos mediante el criterio single linkage, mientras que se comporta peor en la tercera y la cuarta siendo incapaz de distinguir las agrupaciones.
Average linkage exhibe el mejor comportamiento en la cuarta situación, mientras que el método de Ward sería más adecuado en la tercera.
Todos son capaces de identificar las agrupaciones en la quinta situación, y hacen clasificaciones arbitrarias en la sexta. En éste último caso los resultados de single linkage quizá son los que tienen más sentido.
Por tanto, el algoritmo va seleccionando los pares de puntos que mejor casan con los objetivos del criterio correspondiente y los junta en un clúster. Continúa con éste procedimiento hasta que se cumple la condición de fin especificada, que puede ser una de las siguientes:
Más información: Documentación de sklearn, (Brownlee, 2020).
Siglas de Balanced Iterative Reducing and Clustering using Hierarchies (Zhang, Ramakrishnan, & Livny, 1996). Éste algoritmo construye un árbol de características de clusterización, que en esencia agrupa el conjunto de datos en una red de nodos. Cada nodo contiene una serie de subclústeres que a su vez representan los datos correspondientes resumidos mediante una serie de estadísticos.
De ésta forma, no es necesario cargar todo el conjunto de datos en memoria, ya que la clusterización se realiza sobre ésta estructura que resume los datos.
Mediante sucesivas iteraciones, las propiedades y las observaciones de cada uno de los subclústeres van cambiando de forma recursiva a medida que se incorporan observaciones nuevas.
Los principales parámetros del algoritmo son los siguientes:
Más información: Documentación de sklearn, (Brownlee, 2020).
Siglas de Density-Based Spatial Clustering of Applications with Noise (Ester, Kriegel, Jörg, & Xu, 1996). El algoritmo DBSCAN concibe a los clústeres como zonas del espacio que concentran una gran cantidad de puntos, frente a otras zonas de menor densidad.
Los puntos que forman parte de éstas zonas de baja densidad son tomados como ruido y no se asignan a ningún clúster. En contraste, otras técnicas intentan clasificarlos de la mejor manera posible y acaban difuminando las fronteras entre las agrupaciones.
Los puntos que se encuentran en zonas de alta densidad son considerados observaciones centrales. Por tanto, un clúster es una agrupación de observaciones centrales junto con algunos otros puntos que estén cercanos a la agrupación.
El hecho de que una observación sea considerada central o no depende fundamentalmente de dos parámetros:
Por tanto, una observación será central si hay más de \(k\) observaciones a una distancia menor que \(\varepsilon\).
Los atípicos son aquellas observaciones que están a una distancia inferior a \(\varepsilon\) de al menos una observación central, pero que no se pueden considerar centrales ya que no están rodeados por más de \(k\) puntos.
Como hemos comentado, presenta la ventaja de que distingue entre los datos que claramente pertenecen a un clúster y los que no. El inconveniente es que es muy sensible a los diferentes valores de \(\varepsilon\). Si \(\varepsilon\) es demasiado pequeño, todos los datos serán clasificados como ruido, mientras que si es demasiado grande se agruparán en un único clúster.
Resulta problemático ya que para un determinado conjunto de datos supongamos que valores por debajo de 3 provocan que todas las observaciones se agrupen como ruido. Un aumento de medio punto adicional puede seguir sin cambiar la clasificación, pero a partir de un valor crítico (imaginemos 3,55), rápidamente comienza a modificarse la clasificación y es posible que valores mayores que 3,65 provoquen que todos los datos se agrupen ya en un único clúster.
Éste algoritmo designa a una serie de puntos como candidatos para ser los centroides de los clústeres. Entonces, intenta ir desplazando éstos centroides mediante un vector de desplazamiento medio, que siempre apuntará hacia la dirección que lleva al máximo incremento de densidad. Al aplicar ésta operación, el centroide esencialmente se ubica en la “media” de las observaciones cercanas.
Posteriormente, descarta aquellos centroides que estén muy próximos y empareja cada observación con el centroide más cercano para construir los clústeres.
El principal parámetro a optimizar es el denominado ancho de banda (bandwidth) del kernel.
Más información: Documentación de sklearn, (Brownlee, 2020).
En éste proyecto vamos a tratar además cuestiones relacionadas con la bibliometría. (González de Dios, Moya Benavent, & Mateos Hernández, 1997) definen la bibliometría como “la ciencia que estudia la naturaleza y curso de una disciplina por medio del cómputo y análisis de las varias facetas de la comunicación escrita”. Dicho documento proporciona además una clasificación de los tipos de indicadores bibliométricos, así como las limitaciones de cada cada categoría. La conexión entre la bibliometría y la minería de texto es por tanto muy estrecha, ya que la primera requiere de los métodos y tecnologías de la segunda.
De la definición anterior se desprende que la bibliometría busca representar las características de la literatura científica de forma tal que podamos comprender la evolución del campo subyacente. Así, se trata de pasar de miles de datos a obtener una serie de indicadores o visualizaciones con los que podamos trabajar, tales como el número de artículos publicados en un período determinado o la cantidad de citaciones de un autor.
Algunos de los indicadores más utilizados son aquellos que están relacionados con las citaciones que tienen los artículos. Dentro de ésta categoría, uno de los indicadores más comunes es el índice h (Cabezas Clavijo & Delgado López Cózar, 2013), que asigna una puntuación h a un conjunto de artículos en el que existen h artículos con h o más citas cada uno. Por tanto, considera tanto el impacto como la cantidad de artículos. Inicialmente, dicho índice se pensó para evaluar a los autores, pero dada su popularidad se ha aplicado sobre revistas científicas (Braun, Glänzel, & Schubert, 2006), instituciones (Prathap, 2006) e incluso países (Csajbók, Berhidi, Vasas, & Schubert, 2007).
El análisis de las citaciones y las referencias de un artículo también puede revelar las diferentes corrientes de pensamiento existentes en un campo determinado (Noma, 1984) o el grado de aislamiento de la comunidad científica de un país con respecto a la comunidad internacional (Aleixandre Benavent et al., 2017), (González de Dios et al., 1997).
También se pueden analizar las palabras clave o keywords que se asocian con frecuencia a los artículos en las bases de datos para poder clasificarlos. En un conjunto de artículos podemos analizar cuáles son las temáticas más frecuentes y cómo se relacionan entre sí, representando la información en una red (Heradio et al., 2016).
Otra variable clásica en los estudios bibliométricos son los autores que participan en la producción de un artículo científico. Se puede estudiar el número de autores que participan en la creación de cada artículo, estando el promedio en distintas disciplinas entre 3 y 5 (Canela Soler & Ollé Goig, 1987). También se puede analizar la productividad de los autores. En éste sentido, la ley de Lotka (Lotka, 1926) pronostica que la mayoría de los autores en un campo determinado publican un único artículo, y a medida que aumentamos el número de artículos publicados, la cantidad de autores con una producción igual o superior a la misma decrece rápidamente de forma que en el otro extremo de la curva encontramos a unos pocos autores con una gran cantidad de artículos publicados (Coile, 1978). En relación con los autores, también se pueden estudiar las relaciones entre ellos (Li, Kramer, Pierce, & Agogino, 2018), (Otte & Rousseau, 2002) para construir redes sociales. Éste tipo de análisis nos puede aportar información sobre el grado de colaboración entre equipos o países.
Por supuesto, la fecha de publicación de los artículos también es merecedora de análisis. Gracias a éste dato podemos situar a los artículos en una línea temporal para ver, por ejemplo, cómo evoluciona el grado de colaboración entre los diferentes actores implicados en la producción científica (Butcher & Jeffrey, 2005).
En términos más generales, cualquier variable presente en la base de datos es susceptible de aportar información valiosa sobre el campo subyacente. Además, podemos realizar nuestro análisis sobre una variedad de niveles: autores, universidades, revistas, países, temáticas, etc., de modo que obtenemos una gran cantidad de posibles enfoques a la hora de articular nuestros resultados.
Éste proyecto es una prueba de concepto sobre la posible aplicación de las técnicas de minería de textos y la bibliometría para estudiar la evolución de la investigación en psicología en general y más concretamente en una muestra de artículos relacionados con la usabilidad.
Analizaremos la producción científica durante un período de tiempo y la representaremos mediante una serie de indicadores y gráficos para poder entender su evolución. Además, realizaremos una clusterización temática de los artículos con el objeto de ver si se pueden realizar agrupaciones razonables de forma no supervisada.
Para el estudio recogimos una muestra de 156.629 artículos diferentes. Para seleccionar los artículos a descargar se realizaron una serie de solicitudes a la API de Búsquedas de Scopus.
Los elementos que aparecen en la tabla siguiente son las expresiones que se introdujeron para las búsquedas, y siguen la sintaxis de búsqueda avanzada de Scopus.
Para consultar los detalles sobre cómo se contruyen las solicitudes de búsqueda, pulsar el siguiente botón.
Los elementos de la tabla son las entradas que recibe el script de descarga de datos para construir las solicitudes de la API. Para simplificar la gestión de los términos de búsqueda, el script los transforma y convierte en solicitudes válidas.
Además de dichas expresiones, se introdujeron ciertos parámetros para filtrar los resultados:
Por defecto, la API devuelve los resultados más recientes primero, pero sólo permite descargar los primeros 5.000 elementos. Una vez que se ha alcanzado dicho límite, repetimos el proceso pero empezando por los más antiguos. El script descarta los duplicados en caso de que ya se haya descargado un artículo en las iteraciones anteriores.
La tabla a continuación muestra el recuento de artículos para cada búsqueda, pero algunos artículos fueron descargados varias veces al aparecer en más de una búsqueda.
El recuento total de artículos mencionado anteriormente sólo considera artículos únicos. Por ello, la suma de todos los recuentos de la tabla arroja un valor mayor (157.185), pues considera aquellos que fueron descargados varias veces y los cuenta en cada búsqueda.
Éste es el número de artículos que contiene la base de datos, pero para la mayor parte de los análisis se descartaron los duplicados. Sólo se tienen en cuenta los duplicados para aquellas métricas que se reporten en función de la búsqueda.
En la siguiente tabla, se detalla la cantidad de artículos descargados para cada búsqueda.
Tabla 1: Recuento de artículos por búsqueda
Para la obtención de los artículos, se recurrió a las bases de datos de Elsevier, a través de las APIs de Scopus y Science Direct, que permiten automatizar la obtención de los abstracts contenidos en la plataforma.
La descarga de los artículos se realizó mediante un script de python que se ejecuta de forma periódica mediante cron. Cada vez que se ejecuta, realiza una solicitud a la API de búsquedas y se descarga entorno a 25 artículos.
En primer lugar, utiliza la API de búsqueda de Scopus (Scopus Search API). Ésta herramienta, permite realizar búsquedas en la base de datos y devuelve una lista con los artículos que se ajustan al criterio de búsqueda, así como otros metadatos del documento de entre los que seleccionamos los siguientes:
Tras éste primer paso, se descartaron aquellos resultados que no tenían un DOI asociado, ya que resulta imprescindible para el siguiente paso.
A continuación, utilizamos la librería elsapy de python para obtener los abstracts, que a su vez realiza solicitudes a la API correspondiente. Una de las funciones de la librería recibe como parámetro el DOI del artículo y crea un objeto de conexión que contiene los datos del artículo, entre los que se encuentra el abstract propiamente dicho.
Antes de incorporar los datos, se comprobaba que dicho artículo no estaba ya en la base de datos, y también que efectivamente se pudo acceder al abstract, descartando aquellos elementos que no lo tuvieran o que tuvieran un abstract excesivamente corto, ya que a menudo en éste último caso solía contener errores. Además el texto fue preprocesado para facilitar el análisis posterior:
Para almacenar la información descargada se utilizó una base de datos de SQLite.
SQLite es un gestor de bases de datos relacionales que da acceso a gran parte de las funcionalidades de éste tipo de bases de datos, pero que no requiere ningún tipo de servidor para funcionar. Así, la base de datos es un archivo independiente similar a un Excel, pero tiene muchas características deseables para el almacenamiento de datos que por ejemplo no ofrece un csv:
A la hora de comunicar los resultados vamos a distinguir entre dos aplicaciones de las técnicas. Una de ellas se realiza sobre toda la muestra de artículos, obtenida solicitando todos los artículos de cada año. Ésta muestra nos permite observar tendencias en la investigación en psicología. También hemos elaborado una segunda muestra más pequeña con temáticas específicas, relacionadas con la usabilidad de las interfaces de usuario. Ésta muestra se elaboró seleccionando todos los artículos que contienen alguno de los siguientes términos en las keywords: usability OR {interface design} OR {web design} OR {user interfaces} OR {man machine} OR {human machine} OR {ease of use} OR {technology acceptance} or utaut. Ésta muestra nos sirve de ejemplo sobre cómo funcionarían las técnicas si queremos explorar una temática en concreto.
A continuación procedemos a analizar la muestra completa de artículos en función de diferentes dimensiones.
El gráfico que podemos ver a continuación representa la cantidad de artículos publicados a lo largo del tiempo. También se muestran las keywords más frecuentes de cada año.
Hay que tener en cuenta que los datos mostrados no representan toda la producción científica para el período, si no tan sólo los artículos que cumplen las condiciones siguientes: artículos de psicología en inglés cuyo DOI comienza por un patrón determinado.
El recuento no se refiere a los artículos descargados en la base de datos local para cada año si no a la cantidad de artículos en Scopus que cumplen los criterios de búsqueda. Las keywords mostradas sí se han obtenido a partir de la muestra descargada.
Gráfico 1: Distribución temporal de los artículos
Podemos ver que desde el inicio del intervalo hasta el final el número de artículos se ha multiplicado por 5,25.
Los artículos de la muestra han sido escritos por 282.221 autores.
En promedio cada artículo tiene 3,31 autores. La distribución del número de autores por artículo se detalla en el siguiente gráfico. Dado que la cantidad de artículos con más de 10 autores es proporcionalmente pequeña, el gráfico sólo muestra las cifras hasta 10 autores.
Gráfico 2: Número de autores por artículo
El 71,74% de los autores sólo ha escrito un artículo, mientras que entre los mil autores más activos el promedio de producción es de 32,17 artículos.
En el gráfico siguiente podemos ver el número de autores que publican X artículos.
Gráfico 3: Número de autores que escriben N artículos
El siguiente gráfico muestra los autores que más artículos han escrito así como las principales revistas en las que los han publicado y las temáticas de investigación más frecuentes para el autor junto con su frecuencia.
Gráfico 4: Artículos publicados por revista (autores más productivos)
A continuación podemos agrupar a los autores que han estudiado temáticas similares en una red. En el gráfico cada nodo representa un autor, su tamaño representa el número de artículos escritos por el mismo. A su vez, el grosor de los enlaces representa el grado de similaridad entre las temáticas estudiadas por ambos autores.
La metodología para generar ésta red se describe en el apartado de redes temáticas, cambiando algunas variables.
Gráfico 5: Autores agrupados en función de las temáticas en común
En la red podemos ver que hay algunos grupos de autores con un fuerte solapamiento en temáticas de investigación.
Los artículos fueron escritos por parte de 13.473 instituciones. Las más involucradas fueron las siguientes:
Tabla 2: Recuento de artículos por centro
La siguiente red representa el grado en el que autores de distintas universidades colaboran para producir artículos. El tamaño de los nodos representa el número de artículos escritos por la institución y el grosor de los enlaces la colaboración entre las instituciones. Está operativizada mediante la cantidad de autores que tienen en común.
Gráfico 6: Colaboraciones entre instituciones (50 más productivas)
En el siguiente gráfico representamos las mismas instituciones, pero el grosor de los enlaces representa las temáticas de investigación en común entre ellas.
Gráfico 7: Solapamiento entre temáticas de investigación entre instituciones (50 más productivas)
En las redes vemos que la colaboración entre centros es más frecuente dentro de un mismo país, pero al buscar solapamiento entre las temáticas investigadas sí que se agrupan con frecuencia instituciones de diferentes países.
Se han encontrado artículos escritos en centros pertenecientes a 138 países diferentes. El recuento se detalla a continuación
Tabla 3: Recuento de artículos por país
En el siguiente gráfico podemos ver los artículos publicados por los 10 países con mayor producción a lo largo del tiempo. Dado que la producción de Estados Unidos es muy elevada aparece oculta por defecto en el gráfico.
Gráfico 8: Artículos descargados para cada país por año
En el siguiente gráfico aparecen representadas las temáticas de investigación más frecuentes en cada uno de los países, expresadas como el porcentaje de artículos del país que contienen la keyword en relación con el total de artículos disponibles para el país.
Una barra alta para el país indica que una mayor proporción de artículos contienen alguna de las keywords, aunque debemos tener en cuenta que los artículos pueden contener varias.
Podemos hacer doble click sobre una keyword en la leyenda para ver los países con mayor producción relacionada con ella. Para saber más sobre cómo iteractuar con los gráficos, consultar la sección de ayuda.
Gráfico 9: Keywords más frecuentes por país
Los artículos fueron publicados en 306 revistas. Las más comunes fueron las siguientes:
Tabla 4: Recuento de artículos por revista
Hemos construido una visualización para representar las temáticas más frecuentes de investigación, así como las relaciones entre ellas. Para ello primero seleccionamos las \(N\) keywords más frecuentes. A continuación, seleccionamos todos los conjuntos de keywords que incluyen cada una de las keywords de la lista y los juntamos formando un documento para cada keyword. Éste documento contiene todas las keywords que han aparecido junto a la keyword en cuestión. Nótese que en cada conjunto de keywords conservamos la keyword en cuestión, que lógicamente debería ser siempre el término más frecuente ya que aparece en todos. Para estimar las relaciones entre términos, calculamos la similaridad entre los documentos correspondientes mediante el índice de Jaccard. La matriz de similaridad resultante puede ser convertida a una red mediante la librería igraph, que representamos a continuación.
En el gráfico cada nodo representa una keyword, y su tamaño indica el número de artículos que contienen la keyword: más grande, mayor número. Por otro lado, el grosor de los enlaces representa la relación que hay entre los términos: cuanto más grueso, mayor relación.
Gráfico 10: Relaciones entre keywords
Gráfico 11: Relaciones entre keywords (muestra usabilidad)
Para comprobar como se agrupan los artículos aplicamos un modelo de clusterización. El primer paso para poder aplicar dicha técnica consiste en obtener la matriz de similaridad de todos los pares de documentos. Para ello, definimos como métrica el índice de Jaccard, y lo aplicamos sobre el texto de los resúmenes. El algoritmo de clusterización le asigna a cada resumen una etiqueta arbitraria que indica el clúster que le corresponde. Para poder darle sentido a la clusterización hemos construido una visualización interactiva que permite observar las temáticas más frecuentes en cada clúster, así como las relaciones entre clústeres.
Probamos varios modelos para realizar la agrupación de los datos, y seleccionamos el modelo de clustering aglomerativo, con distancia euclidiana y el método de Ward. A la hora de tomar la decisión atendimos a varios criterios:
sklearn, que tiene un soporte excelente por parte de sus desarrolladores y cuenta con una gran comunidad.A continuación, vemos los resultados de la clusterización para la muestra de usabilidad.
Gráfico 12: Resultado de la clusterización (muestra usabilidad)
Éste gráfico representa los clústeres mediante una serie de puntos rojos organizados entorno a una circunferencia. Cada punto representa un clúster, y al pasar el ratón por encima del mismo podemos ver las keywords más frecuentes en el mismo y el porcentaje de artículos del clúster que contienen cada una.
Las líneas de colores del gráfico representan la similaridad entre los clústeres. Las líneas rojas representan los vínculos más fuertes, seguido de las líneas naranjas, amarillas, verdes, azules y por último moradas, que representan las relaciones más débiles. El grosor de las líneas también está determinado por éste parámetro.
También hay otro anillo de puntos verdes más pequeños. Si pasamos el cursor por encima podemos ver la similaridad que tiene el clúster con el resto de clústeres. Además, aparece una breve descripción de todos los clústeres.
Hacia el interior del círculo tenemos un tercer anillo de puntos grises. Si pasamos el cursor por encima podemos ver algunas métricas para los clústeres, que también aparecen representadas mediante polígonos. Cuando éstos polígonos se aproximan a los puntos grises implica que el clúster correspondiente destaca en la métrica.
El análisis realizado sobre el conjunto de artículos permite extraer algunas conclusiones relevantes para la psicología, siempre teniendo en cuenta las limitaciones que mencionaremos en el siguiente apartado.
Para empezar, destacar que la producción científica se ha multiplicado durante los últimos 30 años. El número de artículos publicados permanecía relativamente estable hasta el año 2003, tras lo cual comenzó a aumentar prácticamente todos los años. Coincide con la evolución de otras disciplinas: actualmente vivimos en una época en la que se ha multiplicado el número de científicos en prácticamente todos los ámbitos del saber.
También es de interés conocer las principales temáticas de investigación. En términos generales, predominan las investigaciones relacionadas con la depresión, la ansiedad y el estrés. Otro conjunto de temáticas que han sido investigadas con bastante frecuencia son las relacionadas con la personalidad y el desarrollo. De cerca sigue el estudio de facultades básicas como son la memoria y la atención.
Sin embargo, ésto no ha sido así siempre. Durante buena parte del siglo pasado la investigación con animales, el estudio de la ingesta y de los abusos sexuales tenía una parte importante del protagonismo, aunque es posible que se deba a deficiencias en el muestreo de los artículos durante éste período.
En la muestra de usabilidad, encontramos un gran interés por el modelo de aceptación de la tecnología, las interfaces y la interacción persona-máquina.
En lo que a la productividad de los autores se refiere, nuestros datos se ajustan a las expectativas generadas por la literatura previa. La mayoría de los autores han escrito una única publicación, y a medida que aumentamos el número de publicaciones escritas, el número de autores con una producción igual o superior cae rápidamente.
La Ley de Lotka pronostica que debe caer a un ritmo más lento del que hemos observado en nuestra muestra. Por ejemplo, teniendo en cuenta la cantidad de autores que han publicado un artículo, cabría esperar un mayor número de autores con 2 ó 3 artículos. En cualquier caso, la forma de la curva es semejante y el principio como tal se mantiene. Unos pocos autores tienen una producción mucho más elevada que el resto.
El número de autores que colaboran en la publicación de un artículo también entraría dentro de los valores observados por otros investigadores (González de Dios et al., 1997).
En cuanto a las instituciones que promueven los estudios y los países a los que pertenecen, encontramos un dominio total de Estados Unidos, aunque en los últimos años China ha aumentado de forma muy significativa su producción.
También ha quedado demostrado que la metodología utilizada para generar redes de términos puede ser aplicada sobre una gran variedad de problemas diferentes. Las redes mostradas en éste informe han sido construidas sobre variables diferentes pero con un procedimiento común basado en la creación de cuerpos de texto agrupados bajo una etiqueta (nombre de autor, keyword, nombre de la institución). Dichos cuerpos de texto a su vez pueden representar autores, keywords, citaciones, el texto de los artículos…
En todos los casos, las clasificaciones que se hacen resultan aceptables. Así, ésta metodología puede utilizarse para elaborar representaciones intuitivas e informativas de una gran variedad de temáticas. Además, hemos utilizado librerías que abstraen la mayor parte del código y que tienen un gran rendimiento y soporte, por lo que resulta práctico para su aplicación posterior. Hemos aplicado éstas técnicas de visualización sobre una muestra de dudas de Stack Overflow y era capaz de encontrar relaciones entre las diferentes tecnologías involucradas. También ha dado buenos resultados a la hora de hallar relaciones entre hashtags en Twitter.
Además, la librería igraph en particular puede convertir cualquier matriz similar a una matriz de correlaciones en una red de forma sencilla, lo cual presenta muchas oportunidades de aplicación para visualizar las relaciones entre cualquier conjunto de variables.
En lo que a la clusterización temática de los artículos se refiere, los resultados obtenidos no son tan satisfactorios. El objetivo inicial en éste sentido era desarrollar un sistema que agrupe de forma automática los artículos en categorías que puedan ser útiles para entender las relaciones entre temáticas, pero hemos encontrado que para que se cumpla dicha condición los parámetros de los algoritmos de clusterización deben ser establecidos de forma meticulosa. Incluso con los parámetros correctos los artículos son un conjunto muy heterogéneo de temáticas y no se agrupan de forma demasiado diferenciada según nuestros análisis. Al representar los componentes principales sobre un plano de dos dimensiones no observamos una clusterización clara. En éste sentido tenemos que elegir entre tener muchos clústeres que agrupan artículos muy semejantes, o tener pocos que agrupan artículos de muy distinta naturaleza. En el primer caso la clasificación no es demasiado útil al contar con tantas categorías, y en el segundo agruparía bajo la misma etiqueta a artículos muy diferentes.
Éste proyecto constituye una buena demostración de la aplicación de técnicas de minería de texto para estudiar la evolución de un campo científico, pero tiene algunas limitaciones importantes.
La principal es sin duda el muestreo. Para realizar los análisis teníamos que ceñirnos a los datos disponibles de forma abierta en Scopus, que son aquellos que Elsevier puede distribuir sin demasiadas restricciones. Ésto implica dejar fuera a revistas, universidades y trabajos que muy posiblemente sean los más relevantes. Dado que el objetivo del proyecto no es proporcionar conclusiones certeras, sino simplemente explorar las posibilidades de éste tipo de análisis, no se contactó con las instituciones correspondientes para obtener los permisos necesarios para acceder a una muestra que sea representativa.
Ésto habría implicado obtener datos de varias fuentes, lo cual complicaría significativamente los trabajos de procesamiento de los datos para poder equiparar la información.
Otro factor importante es que limitamos nuestro análisis a aquellos artículos que estuviesen escritos en inglés. De ésta forma, es muy posible que a la hora de comparar la producción entre países, los países de habla inglesa cuenten con cierta ventaja. Entendemos que en éstos países la práctica totalidad de la producción científica se hará en inglés, pero en países como España es posible que estudios con menor impacto no lleguen a traducirse y por tanto no aparezcan en nuestra muestra.
Además, a los lectores familiarizados con la bibliometría quizás les haya resultado extraño que en ningún momento hayamos hablado de las citaciones de los artículos, que es la métrica por excelencia en éste tipo de estudios. Justamente por éste motivo el dato está reservado a los suscriptores de Scopus, lo cual nuevamente implicaría contactar con Elsevier para acceder a la información y representaría un gasto.
En el presente documento hemos descrito las bases de una metodología de análisis prometedora. La construcción de redes de términos a partir de matrices de similaridad ha demostrado ser una técnica capaz de representar un conjunto de artículos de forma eficaz, y aplicada sobre diferentes variables permite estudiar una gran cantidad de dimensiones del conjunto de datos.
Sería interesante empaquetar los resúmenes mostrados en una aplicación interactiva de Shiny. Así, otras personas sin conocimientos de programación podrían obtener toda ésta información desde su navegador. Actualmente, todo el código necesario está incluido dentro de un fichero de Rmarkdown que sirve para generar éste mismo informe, por lo que podría reutilizarse sin demasiadas modificaciones en una aplicación de éste tipo.
La descarga de los datos se comenzó desarrollar en python dado que por lo general la capacidad de éste lenguaje para interactuar con otros sistemas es mayor, aunque teniendo en cuenta las demandas finales del proyecto, se habría podrido realizar en R sin problemas. Por tanto, se podría reescribir en R e integrarlo dentro de la aplicación shiny.
No obstante, podría tener sentido conservarlo como un componente independiente ya que es posible que algunas personas solo necesiten una herramienta que les permita descargar los datos para luego analizarlos con el paquete estadístico de su elección. En éste caso tendríamos varias opciones para su distribución. Podría introducirse en un contenedor de docker (o similar) con una instalación fácil que automáticamente genere la base de datos al iniciarse. Así podría utilizarse por separado o integrarse en sistemas más complejos mediante docker compose. Otra opción sería desarrollar una interfaz gráfica para crear una pequeña aplicación nativa que los usuarios puedan instalar en sus ordenadores. Dicha aplicación deberá proporcionar herramientas para exportar los datos a diferentes formatos para su análisis posterior.
En cualquier caso, el código fuente de ambos componentes podría ser compartido en github para que cualquier persona interesada pueda realizar las modificaciones que considere pertinentes.
Éste documento es una página web, de modo que se puede navegar por el mismo tal y como se haría en cualquier otra página.
Por ejemplo, cuando se realiza una citación, la fecha contiene un link al apartado de referencias en el que se puede consultar la información completa de la referencia. Así, al hacer click sobre el año, podemos ver la información de la cita.
Si pulsamos el botón de atrás en el navegador, volveremos al punto en el que estábamos antes, sin necesidad de desplazarnos hacia arriba por todo el documento.
Ejemplo:1 hacer click en el número pequeño y pulsar el botón de atrás en el navegador.
Para hacer el documento más compacto, algunas secciones se presentan en forma de pestañas. Al hacer click sobre las diferentes pestañas podemos ver el contenido de cada una.
Las pestañas pueden tener un diseño de “botones”, tal y como vemos en el siguiente apartado, pero la funcionalidad es la misma.
Contenido de la sección 1
Contenido de la sección 2
R markdown está pensado para comunicar los resultados de una investigación de forma altamente personalizable mediante distintos elementos interactivos basados en tecnologías web. En las diferentes pestañas de ésta seccion podemos consultar las opciones que ofrecen algunos de éstos elementos.
R markdown permite crear tablas paginadas mediante las cuales se puede mostrar una gran cantidad de información sin ocupar demasiado espacio en el documento. Por defecto muestran los primeros elementos, pero al hacer click sobre el botón “Next” (o sobre los números de página) se pueden visualizar todas las filas.
También se puede hacer click sobre el nombre de una variable para ordenar la tabla por esa columna. Si se hace click de nuevo, invierte el orden.
En caso de que haya un cuadro de texto bajo el nombre de la variable, se puede introducir un valor o un rango de valores ahí para filtrar los resultados que se muestran en la tabla.
La mayor parte de los gráficos han sido generados con una librería llamada plotly. Por defecto, al pasar el cursor por los puntos podemos ver los valores asociados exactos mediante los cuales se representan los datos. El ejemplo de abajo está configurado para que muestre todos los de la misma fecha. Si hacemos click y arrastramos dentro del gráfico se activa la herramienta de zoom, que nos permite ampliar una parte del gráfico.
Además, en la parte superior encontramos una barra de herramientas. Si hacemos click sobre el botón de la casa, restablece el nivel de zoom (también se puede hacer con doble click sobre el propio gráfico). Si seleccionamos la herramienta “Pan” tras haber hecho zoom podremos desplazarnos por el gráfico ampliado.
Si nos fijamos en la leyenda del gráfico, podemos hacer desaparecer una variable haciendo click sobre su nombre. Si hacemos click de nuevo, volverá a mostrarse.
Si hacemos doble click sobre una variable que está visible, ocultará todas las demás y nos quedaremos solo con esa (prueba a hacer doble click sobre la variable “F”). Al hacer doble click sobre una variable oculta se mostrarán todas las que estén ocultas de nuevo.
Es posible que algunas funcionalidades no estén disponibles en determinados navegadores.
Batorsky, B. (2020). Introduction to natural language processing - pydata. Retrieved from https://www.youtube.com/watch?v=2EIzR5DwOg0
Braun, T., Glänzel, W., & Schubert, A. (2006). A hirsch-type index for journals.
Brownlee, J. (2020). 10 clustering algorithms with python. Retrieved from https://machinelearningmastery.com/clustering-algorithms-with-python/
Butcher, J., & Jeffrey, P. (2005). The use of bibliometric indicators to explore industry–academia collaboration trends over time in the field of membrane use for water treatment.
Cabezas Clavijo, A., & Delgado López Cózar, E. (2013). Google scholar and the h-index in biomedicine: The popularization of bibliometric assessment.
Canela Soler, J., & Ollé Goig, J. E. (1987). Muchos y bien avenidos: El número de autores en revistas clínicas.
Coile, R. C. (1978). Lotka’s frequency distribution of scientific productivity.
Csajbók, E., Berhidi, A., Vasas, L., & Schubert, A. (2007). Hirsch-index for countries based on essential science indicators data.
Ester, M., Kriegel, H. P., Jörg, S., & Xu, X. (1996). A density-based algorithm for discovering clusters in large spatial databases with noise.
Feldman, R., & Dagan, I. (1995). Knowledge discovery in textual databases (kdt).
Frey, B. J., & Dueck, D. (2007). Clustering by passing messages between data points.
González de Dios, F. J., Moya Benavent, M., & Mateos Hernández, M. A. (1997). Indicadores bibliométricos: Características y limitaciones en el análisis de la actividad científica.
Heradio, R., De La Torre, L., Galan, D., Cabrerizo, F. J., Herrera-Viedma, E., & Dormido, S. (2016). Virtual and remote labs in education: A bibliometric analysis.
Li, N., Kramer, J., Pierce, G., & Agogino, A. (2018). Co-author network analysis of human-centered design for development.
Lotka, A. J. (1926). The frequency distribution of scientific productivity.
Noma, E. (1984). Co-citation analysis and the invisible college.
Otte, E., & Rousseau, R. (2002). Social network analysis: A powerful strategy, also for the information sciences.
Prathap, G. (2006). Hirsch-type indices for ranking institutions’ scientific research output.
Richmond, A. (2020). Understanding cosine similarity and its application. Retrieved from https://towardsdatascience.com/understanding-cosine-similarity-and-its-application-fd42f585296a
Rip, A., & Courtial, P. (1984). Co-word maps of biotechnology: An example of cognitive scientometrics.
Rodríguez, O. (2018). Ciencia de datos con python. Retrieved from https://www.youtube.com/watch?v=A19yfFn8G0o&list=PLpDkpV2EuYFNI1jIPmG72_z40GBLL8doM&index=6
Sculley, D. (2010). Web-scale k-means clustering.
Sieg, A. (2018). Text similarities : Estimate the degree of similarity between two texts. Retrieved from https://medium.com/@adriensieg/text-similarities-da019229c894#:~:text=Text%20similarity%20has%20to%20determine,and%20meaning%20%5Bsemantic%20similarity%5D.&text=On%20the%20surface%2C%20if%20you,words%20are%20an%20exact%20overlap.
Solla Price, D. (1976). A general theory of bibliometric and other cumulative advantage processes.
Thorndike, R. L. (1953). Who belongs in the family?
Vink, R. (2018). Algorithm breakdown: Affinity propagation. Retrieved from https://www.ritchievink.com/blog/2018/05/18/algorithm-breakdown-affinity-propagation/
Yuan, C., & Yang, H. (2019). Research on k-value selection method of k-means clustering algorithm.
Zhang, T., Ramakrishnan, R., & Livny, M. (1996). BIRCH: An efficient data clustering method for very large databases.
Ayuda para las referencias y citas: click en el botón de atrás en el navegador para volver↩︎